package dto

type MenusResponse struct {
	ID        uint            `json:"id"`
	ParentId  uint            `json:"parentId"`
	Name      string          `json:"name"`
	Type      string          `json:"type"`
	Path      string          `json:"path"`
	Component string          `json:"component"`
	Sort      int             `json:"sort"`
	Visible   int             `json:"visible"`
	Icon      string          `json:"icon"`
	Redirect  string          `json:"redirect"`
	Perm      string          `json:"perm"`
	Children  []MenusResponse `json:"children"`
}

type FormResponse struct {
	ID            uint   `json:"id"`
	ParentId      uint   `json:"parentId"`
	Name          string `json:"name"`
	Type          string `json:"type"`
	Path          string `json:"path"`
	Component     string `json:"component"`
	Sort          int    `json:"sort"`
	Visible       int    `json:"visible"`
	Icon          string `json:"icon"`
	Redirect      string `json:"redirect"`
	Perm          string `json:"perm"`
	AlwaysShow    string `json:"alwaysShow"`
	RequestUrl    string `json:"request_url"`
	RequestMethod string `json:"request_method"`
}

type OptionsResponse struct {
	Value     uint              `json:"value"`
	Label     string            `json:"label"`
	IsControl uint8             `json:"is_control"`
	Children  []OptionsResponse `json:"children,omitempty"`
}

// DynamicRoutesResponse1 用于返回路由
type DynamicRoutesResponse1 struct {
	/**
	路由：/system 只需要一层
	例如/system/user 只写user
	*/
	Path string `json:"path"`

	/**
	当前页面的主页地址，一级目录默认 Layout，二级及以后格式： /system/user/index
	*/
	Component string `json:"component"`

	/**
	与Path相同
	*/
	Name string `json:"name"`

	Redirect string `json:"redirect,omitempty"`

	/**
	具体内容
	*/
	Meta RouteContentResponse `json:"meta"`

	/**
	二级路由
	*/
	Children []DynamicRoutesResponse1 `json:"children,omitempty"`
}

type RouteContentResponse struct {
	/**
	true是隐藏路由，false是不隐藏
	*/
	Hidden bool `json:"hidden"`
	/**
	和路由一样，不用加/  例如 system
	*/
	Icon string `json:"icon"`
	/**
	角色，例如 student 也可以是 1 2 3 4区分
	*/
	Roles []string `json:"roles"`
	/**
	内容，例如 系统管理
	*/
	Title string `json:"title"`

	KeepAlive bool `json:"keepAlive,omitempty"`
}
